The growth of the Internet, coupled with the expansion of nearly every element of existing technologies and industries onto the Internet, has fueled a desire to increase both the power and the speed of Internet services. Seemingly at cross purposes with the desire for improved speed, companies and Internet users seek improved functionality as well. As software applications have become increasingly powerful, attempts to port the power and functionality of traditional software applications to remote users over wide area networks (WANs), such as the Internet, placed undesirable processing burdens on Internet servers and increased overall network traffic, resulting in declines in both performance and speed.
Current technologies for writing and deploying software applications to remote users across WANs are best suited for business-to-consumer (B2C) applications such as those offered by online book stores, auction sites, and the like, such as Amazon.com and Ebay. Typically, these types of applications require a number of interactions with the host in order to accomplish even a small transaction, such as adding a book to a virtual shopping cart, and so on. This business-to-consumer paradigm typically does not offer the functionality required for business-to-business or business-to-employee applications, which often require a greater amount of processing power than a business-to-consumer distributed application.
In addition to increased server traffic and declines in application performance, attempts to introduce greater levels of functionality to distributed applications, namely software applications that are deployed to remote users, typically introduce additional disadvantages. For example, such applications typically have large application program sizes, requiring a great deal of download time and often including complicated, time consuming, and costly installation procedures. Additionally, such applications often require expensive and resource-intensive software on network servers, and typically prove difficult to update with new features or bug fixes.
For devices that communicate over a wireless network, such as wireless personal digital assistants (WPDAs), where available bandwidth is many times less than that used with desktop computers, the disadvantages of prior art applications are amplified. Generally, the term “WPDA” refers to a small portable handheld computer device with a processor, Random Access memory, long-term storage, a display screen, and an input mechanism (such as buttons, a virtual or physically attached keyboard, or a touch screen used with a special stylus). Additionally, the WPDA also includes a wireless modem for connection to the Internet. WPDA products as described herein include the Palm VIIx, the Kyocera 6035, the Handspring Visor, the Compaq iPaq, the Sony Clio, and the like. Most WPDAs sold in the United States, as of the date of this writing, use either the Palm OS or Windows CE operating system, though other operating systems are anticipated in the future.
Typically, wireless devices have much less dynamic memory and storage available than desktop computers. Additionally, the wireless signal is more susceptible to service interruptions than traditional land lines, introducing a greater probability of delays each time the remote server is accessed, such that server-intensive applications may not work as well in the wireless environment. Moreover, the mobility of the wireless device user also creates deployment challenges, which may be exacerbated further when updates and bug fixes must be installed.
Existing approaches for providing WPDA solutions generally can be grouped into two general categories: browser-based solutions and locally installed solutions. Existing WPDA solutions typically fall within one or the other category or within some hybrid of one of the categories.
Browser-based solutions operate much like a web browser on a Windows PC, using a subset of HTML or a similar markup language. These solutions require a connection to the wireless network at all times. The application cannot be used off-line. If the connection is interrupted during use, all work maybe lost. Usability can also be quite low because an entire web page must be completely downloaded over typically a slow, wireless connection before the user can interact with it, and each interaction typically requests another web page to be downloaded. Finally, within such browser-based solutions, the ability to provide local programming instructions is limited or nonexistent.
Locally installed solutions typically consist of compiled application programs that are installed on each WPDA device. These applications allow users to work off-line (when a wireless connection is not available), and then to synchronize the data on the WDPA with the remote server at some later time, either when a wireless connection is available or by “hot-synching” the data with a PC that has a wired network connection. Typically, a separate set of programs must be developed for each WPDA operating system or platform on which the application is to be used. Deployment and support costs are increased because the programs must be installed on each user's WPDA, and must be updated with each new version of the program (to correct errors or to add new features). Additionally, the commonly used method of “hot-synching” the data with a PC requires the installation of special software on such PC, thereby adding another layer of complexity to the deployed application, which is another possible point of failure, as well as also increasing overall deployment and support costs.
The rapidly growing use of the Internet for personal and commercial purposes has highlighted a need for thin-client, graphical, software applications that can be used effectively over the Internet, regardless of the connection speeds, with both wired and wireless clients, in Application Software Provider (ASP) environments, and with little or no support required from software support personnel. Additionally, there is a need for a graphical, thin-client, software application that can provide a level of visual appearance and functionality (known as “look and feel”) that previously could be found only in traditional client/server software applications that are designed to operate on internal high-speed networks.